#include <iostream>
#include <vector>
#include <string>
// 1、包含头文件
#include <sw/redis++/redis++.h>

using namespace std;

// get/set
void test01(sw::redis::Redis& redis)
{
    cout << "get 和 set的使用" << endl;
    redis.flushall();

    // set
    redis.set("key1", "111");
    redis.set("key2", "222");
    redis.set("key3", "333");

    // get
    // auto = sw::redis::OptionalString
    // value1这个可以隐式类型转化成bool类型
    auto value1 = redis.get("key1");
    if (value1)
    {
        cout << "value1: " << value1.value() << endl;
    }
    auto value4 = redis.get("key4");
    if (value4)
    {
        cout << "value4: " << value4.value() << endl;
    }
}

// exists
void test02(sw::redis::Redis& redis)
{
    cout << "exists的使用" << endl;
    redis.flushall();

    // set
    redis.set("key1", "111");
    redis.set("key2", "222");
    redis.set("key3", "333");

    // exists
    auto a = redis.exists("key1");
    auto b = redis.exists("key2");
    auto c = redis.exists("key3");
    auto d = redis.exists("key4");

    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
    cout << "c: " << c << endl;
    cout << "d: " << d << endl;
}
int main()
{
    // 2、创建一个redis对象，在构造函数中需要指定redis服务器的地址和端口
    sw::redis::Redis redis("tcp://127.0.0.1:6379");

    //test01(redis);
    test02(redis);

    return 0;
}